iT邦幫忙

2026 iThome 鐵人賽

DAY 26
0

上幾篇在講 Express.js 今天來寫個小實例吧!

下面是一個可以直接執行的 Express.js 範例,實作一個簡單的 CRUD API

const express = require("express");
const app = express();

app.use(express.json());

let users = [
  { id: 1, name: "Amy" },
  { id: 2, name: "John" }
];

// GET:取得所有使用者
app.get("/users", (req, res) => {
  res.json(users);
});

// POST:新增使用者
app.post("/users", (req, res) => {
  const { name } = req.body || {};

  if (typeof name !== "string" || !name.trim()) {
    return res.status(400).json({
      message: "name 為必填字串"
    });
  }

  const user = {
    id: Math.max(0, ...users.map(u => u.id)) + 1,
    name: name.trim()
  };

  users.push(user);
  res.status(201).json(user);
});

// DELETE:刪除使用者
app.delete("/users/:id", (req, res) => {
  const id = Number(req.params.id);
  const exists = users.some(u => u.id === id);

  if (!exists) {
    return res.status(404).json({
      message: "找不到使用者"
    });
  }

  users = users.filter(u => u.id !== id);
  res.json({ message: "刪除成功" });
});

app.listen(3000, () => {
  console.log("Server running on port 3000");
});

這個範例使用記憶體陣列儲存資料,因此伺服器重新啟動後,資料會恢復成初始內容。正式專案通常會串接資料庫。
資料庫的部分後面幾篇文章也會提到~

如果要把 Express.js 應用在 React 專案要如何串接?

假設 React 前端需要取得使用者清單:

useEffect(() => {
  fetch("http://localhost:3000/users")
    .then(res => res.json())
    .then(data => console.log(data));
}, []);

Express.js 後端:

app.get("/users", (req, res) => {
  res.json([
    { id: 1, name: "Amy" },
    { id: 2, name: "John" }
  ]);
});

如果 React 和 Express 在不同 Origin(例如不同 Port),瀏覽器可能受到 CORS 限制。開發時可以透過 Vite Proxy 或設定 Express CORS Middleware 解決。

結論:
Node.js 提供 JavaScript 的伺服器執行環境,而 Express.js 提供更方便的方式來接收 HTTP Request、處理路由、執行 Middleware,以及回傳 Response。

真的要感謝 Express.js 幫我們處理掉很多事情呢!


上一篇
Day 25 - Express.js 基礎 -2
下一篇
Day 27 - Node.js 進階操作(Cookie / Header / Axios)-1
系列文
在AI 時代的碰撞下~當前端工程師開始碰上後端又到了雲服務的旅程 共 30 篇
圖片
  熱門推薦
圖片
{{ item.channelVendor }} | {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言